/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.interfaces;

import com.modelo.Calendario;
import com.modelo.Ciudad;
import com.modelo.Comentario;
import com.modelo.Inmueble;
import com.modelo.Mensaje;
import com.modelo.Puntaje;
import com.modelo.Reserva;
import com.modelo.Temporada;
import com.modelo.Usuario;
import com.utilities.CorreoElectronico;
import java.util.Date;
import java.util.List;
import org.springframework.web.multipart.MultipartFile;

/**
 *
 * @author Seysame
 */
public interface IComercial {
    
    
    public List<Reserva> historialAlquilerDueño(Usuario dueño);
    
    public List<Reserva> historialAlquilerCliente(Usuario Cliente);
    
    public Mensaje enviarMensaje(Usuario remitente, Usuario destinatario, Mensaje mensaje);
    
    public List<Comentario>ultimosComentariosDueño(Usuario dueño, int numero);
    
    public List<Comentario> consultarComentariosPorInmueble(Inmueble inm);
    
    public List<Mensaje> consultarMensajesPorDueño(Usuario usu);
    
    public List<Puntaje>listadoPuntajesInmueble(Inmueble inmueble);
    
    public List<Inmueble>buscarInmueblePorTitulo(String titulo);
    
    public List<Inmueble>buscarInmueblePorCiudad(Ciudad ciudad);
    
    public List<Reserva> ingresosPorFecha(Inmueble inmueble, Date fechaIncio, Date fechaFin);
    
    public List<Reserva> ingresosPorInmueble(Usuario dueño, Inmueble inmueble);
    
    public Usuario modificarPrivacidad(Usuario usuario);
    
    public boolean guardarRutaMultimedia(MultipartFile file);
    
    public boolean validarCapacidad(Reserva reserva, Inmueble inmueble);
    
    public void enviarPeticionReserva(Reserva reserva, CorreoElectronico correo);
     
    public boolean aceptacionReserva(Reserva reserva);
    
    public boolean validarTemporada(Temporada temporada, Calendario calendario);
    
    public Usuario iniciarSesion(Usuario usuario);
}
